#ifndef __posixfifo_h__
#define __posixfifo_h__

/*
 * 管道文件名最大长度
 */
#define FIFO_FILE_SIZE		256

/*
 * 管道文件数据流最大长度
 */
#define FIFO_BUF_SIZE		4096

/* 二维存储空间长度 */
#define _ARRAY_SZ_1		64
#define _ARRAY_SZ_2		256		

typedef struct __fifo_pipe_control_block
{
	char pf[FIFO_FILE_SIZE];
	unsigned char pbuffer[FIFO_BUF_SIZE];
	int pbufsz;
	int pbuflen;
	int  fd;
	/* 返回信息逐行存放到二维存储空间 */
	//unsigned char arrays[_ARRAY_SZ_1][_ARRAY_SZ_2];
	unsigned char** arrays;
	/* 返回信息的行数 */
	int lines;

	//int (*pfck)(char* pf);
	//int (*pfopen)(char* pf);
	/* 读管道文件数据流, 
	 * 阻塞机制 
	 */
	int (*pfread)(struct __fifo_pipe_control_block* fpcb);
	void (*pfarray)(struct __fifo_pipe_control_block* fpcb);
	void (*arrprint)(struct __fifo_pipe_control_block* fpcb);

}FIFO_CB;

void fpcb_construct(char* pipe_file_name, struct __fifo_pipe_control_block* fpcb);

void fpcb_release(struct __fifo_pipe_control_block* fpcb);

#endif
